package com.macro.mall.service;

import com.macro.mall.common.api.CommonPage;
import com.macro.mall.common.api.CommonResult;
import com.macro.mall.dto.StoreStatisticsParam;
import com.macro.mall.dto.UmsAdminDTO;
import com.macro.mall.model.StoreStatisticsResult;

import java.text.ParseException;
import java.util.Date;
import java.util.List;

public interface IndexStatisticsService {
    /**
     * 获取首页待处理统计信息
     * @param admin
     * @param adminType
     * @return
     */
    CommonResult getIndexStatistics(UmsAdminDTO admin, Integer adminType);

    /**
     * 查询首页商品总览统计信息
     * @param admin
     * @param adminType
     * @return
     */
    CommonResult indexProductStatistics(UmsAdminDTO admin, Integer adminType);
    /**
     * 查询用户总览统计信息
     */
    CommonResult indexMemberStatistics(UmsAdminDTO admin, Integer adminType);

    /**
     * 查询订单统计信息
     */
    CommonResult indexOrderStatistics(UmsAdminDTO admin, Integer adminType);

    /**
     * 店铺统计信息
     * @param admin
     * @param adminType
     * @param storeStatisticsParam
     * @return
     */
    CommonPage<StoreStatisticsResult> storeStatistics(UmsAdminDTO admin, Integer adminType, StoreStatisticsParam storeStatisticsParam);

    /**
     * 导出店铺统计信息
     * @param admin
     * @param adminType
     * @param storeStatisticsParam
     * @return
     */
    CommonResult storeStatisticsExport(UmsAdminDTO admin, Integer adminType, StoreStatisticsParam storeStatisticsParam);

    /**
     * 查询用户统计折线图
     * @param admin
     * @param adminType
     * @param queryWay
     * @param startDate
     * @param endDate
     * @return
     */
    CommonResult memberLiceChart(UmsAdminDTO admin, Integer adminType, Integer queryWay, Date startDate, Date endDate) throws ParseException;

    /**
     * 查询订单折线统计图
     * @param admin
     * @param adminType
     * @param queryWay
     * @param startDate
     * @param endDate
     * @return
     */
    CommonResult orderLiceChart(UmsAdminDTO admin, Integer adminType, Integer queryWay, Date startDate, Date endDate) throws ParseException;

    /**
     * 查询销售额折线统计图
     * @param admin
     * @param adminType
     * @param queryWay
     * @param startDate
     * @param endDate
     * @return
     */
    CommonResult salesLiceChart(UmsAdminDTO admin, Integer adminType, Integer queryWay, Date startDate, Date endDate) throws ParseException;
}
